﻿using System;

namespace LibraryGuard.Interfaces.Utilities
{
	/// <summary>
	/// Name formatter interface.
	/// </summary>
	public interface INameFormatter
	{
		/// <summary>
		/// File path format string.
		/// </summary>
		string FormatString { get; }

		/// <summary>
		/// Compiles format.
		/// </summary>
		void Compile();

		/// <summary>
		/// Creates string that is formated like <see cref="FormatString"/> specifies with specified data.
		/// </summary>
		/// <param name="data"></param>
		/// <returns></returns>
		string Format(IDataProvider data);
	}
}
